#include "bsp.h"
#include "cop_scheduler.h"
#include "stdio.h"

#include "bsp_spi_sd.h"
#include "sdcard_test.h"

#include "palette.h"

uint8_t fps=0;

// LED任务 500ms
void led_task(void)
{
    static uint8_t cnt = 0;
    
    cnt++;
    if(cnt % 2 == 0)
    {
        GPIO_ResetBits(GPIOF,GPIO_Pin_9);
    }
    else
    {
        GPIO_SetBits(GPIOF,GPIO_Pin_9);

    }

//    if(cnt % 10 == 0)
//    {
//        comSendBuf(COM2, "hello 485", sizeof("hello 485"));
//    }

}

//void touch_task(void)
//{
//		XPT2046_TouchEvenHandler();
//}

extern uint16_t img_width, img_height;

/**
  * @brief  液晶屏开窗，使能摄像头数据采集
  * @param  无
  * @retval 无
  */
void ImagDisp(void)
{
		//扫描模式，横屏
    ILI9341_GramScan(5);
    LCD_SetFont(&Font16x24);
		LCD_SetColors(RED,BLACK);
	
    ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);	/* 清屏，显示全黑 */
    ILI9341_DispStringLine_EN(LINE(0),"BH 4.8 inch LCD + OV2640");
	
		/*DMA会把数据传输到液晶屏，开窗后数据按窗口排列 */
    ILI9341_OpenWindow(0,0,img_width,img_height);	
    		
		OV2640_Capture_Control(ENABLE);
}


void task_init(void)
{
    // 初始化调度器时钟
    SCH_Init_Systick();

    // LED任务
    SCH_Add_Task(led_task,0,500); 
//		SCH_Add_Task(touch_task,5,10); 

    // 启动调度器
    SCH_Start();
}

int main(void)
{
    
    // BSP初始化
    bsp_init();
	
    printf("hello usart\n");
		
		/*DMA直接传输摄像头数据到LCD屏幕显示*/
		ImagDisp();
		
//		//绘制触摸画板界面
//		Palette_Init(LCD_SCAN_MODE);
	
		// LCD_Test();
	
    // 任务初始化
    task_init();
	
    while(1)
    {
        SCH_Dispatch_Tasks();
    }


}


